{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-cache",
      "artifactVersion": "2021.26.5",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core",
          "org.nuxeo.ecm.core.api",
          "org.nuxeo.ecm.core.bulk",
          "org.nuxeo.ecm.core.cache",
          "org.nuxeo.ecm.core.event",
          "org.nuxeo.ecm.core.io",
          "org.nuxeo.ecm.core.mimetype",
          "org.nuxeo.ecm.core.mongodb",
          "org.nuxeo.ecm.core.persistence",
          "org.nuxeo.ecm.core.query",
          "org.nuxeo.ecm.core.redis",
          "org.nuxeo.ecm.core.schema",
          "org.nuxeo.ecm.platform.el"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core",
        "id": "grp:org.nuxeo.ecm.core",
        "name": "org.nuxeo.ecm.core",
        "parentIds": [],
        "readmes": [],
        "version": "2021.26"
      },
      "bundleId": "org.nuxeo.ecm.core.cache",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.cache.CacheServiceImpl",
          "declaredStartOrder": 95,
          "documentation": "\n    Service providing a unified cache management system.\n  \n",
          "documentationHtml": "<p>\nService providing a unified cache management system.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.cache.CacheService",
              "descriptors": [
                "org.nuxeo.ecm.core.cache.CacheDescriptor"
              ],
              "documentation": "\n      Extension Point to define a new cache .\n      <cache\n    class=\"org.nuxeo.ecm.core.cache.InMemoryCacheImpl\" name=\"newCache\">\n    <ttl>20</ttl>\n    <option name=\"maxSize\">10</option>\n    <option name=\"concurrencyLevel\">10</option>\n</cache>\n\n      The class attribute may specify a class that implements the CacheManagement interface.\n      The default implementation 'org.nuxeo.ecm.core.cache.InMemoryCacheImpl'\n      is based on Google Guava.\n      <p/>\n\n      The max size set the max number of elements contained in the cache\n      <p/>\n\n      The Time To Live define in minutes the time before the cache will be\n      destroyed\n      <p/>\n\n      The concurrency level, number of thread that can access at the same time\n      the cache\n    \n",
              "documentationHtml": "<p>\nExtension Point to define a new cache .\n\n20\n<select><option>10</option><option>10</option></select><li><p>\nThe class attribute may specify a class that implements the CacheManagement interface.\nThe default implementation &#39;org.nuxeo.ecm.core.cache.InMemoryCacheImpl&#39;\nis based on Google Guava.\n</p><p>\nThe max size set the max number of elements contained in the cache\n</p><p>\nThe Time To Live define in minutes the time before the cache will be\ndestroyed\n</p><p>\nThe concurrency level, number of thread that can access at the same time\nthe cache\n</p><p></p></li></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.cache.CacheService/ExtensionPoints/org.nuxeo.ecm.core.cache.CacheService--caches",
              "id": "org.nuxeo.ecm.core.cache.CacheService--caches",
              "label": "caches (org.nuxeo.ecm.core.cache.CacheService)",
              "name": "caches",
              "version": "2021.26.5"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.cache.CacheService",
          "name": "org.nuxeo.ecm.core.cache.CacheService",
          "requirements": [],
          "resolutionOrder": 118,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.cache.CacheService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.cache.CacheService/Services/org.nuxeo.ecm.core.cache.CacheService",
              "id": "org.nuxeo.ecm.core.cache.CacheService",
              "overriden": false,
              "version": "2021.26.5"
            }
          ],
          "startOrder": 741,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.cache.CacheService\">\n\n  <documentation>\n    Service providing a unified cache management system.\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.cache.CacheServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.cache.CacheService\" />\n  </service>\n\n  <extension-point name=\"caches\">\n\n    <documentation>\n      Extension Point to define a new cache .\n      <cache name=\"newCache\" class=\"org.nuxeo.ecm.core.cache.InMemoryCacheImpl\">\n        <ttl>20</ttl>\n        <option name=\"maxSize\">10</option>\n        <option name=\"concurrencyLevel\">10</option>\n      </cache>\n      The class attribute may specify a class that implements the CacheManagement interface.\n      The default implementation 'org.nuxeo.ecm.core.cache.InMemoryCacheImpl'\n      is based on Google Guava.\n      <p />\n      The max size set the max number of elements contained in the cache\n      <p />\n      The Time To Live define in minutes the time before the cache will be\n      destroyed\n      <p />\n      The concurrency level, number of thread that can access at the same time\n      the cache\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.cache.CacheDescriptor\" />\n\n  </extension-point>\n\n</component>",
          "xmlFileName": "/OSGI-INF/CacheService.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
          "documentation": "\n    Provide a way to manage TransientStores where temporary data can be stored by key.\n   \n",
          "documentationHtml": "<p>\nProvide a way to manage TransientStores where temporary data can be stored by key.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.transientstore.api.TransientStoreConfig"
              ],
              "documentation": "\n    Allow to declare a transient store inside Nuxeo.\n    The store is identified by a name and the descriptor has several parameters :\n\n     <code>\n    <store name=\"microStore\">\n        <!--  a store that can not store anything  -->\n        <targetMaxSizeMB>0</targetMaxSizeMB>\n        <absoluteMaxSizeMB>0</absoluteMaxSizeMB>\n    </store>\n</code>\n\n\n     The store tag supports 2 attributes:\n     <ul>\n    <li>name, that is used to identify the store</li>\n    <li>class, that should reference an implementation of the TransientStoreProvider interface (will default to SimpleTransientStore))</li>\n</ul>\n\n\n     Nested configuration elements are :\n     <ul>\n    <li>targetMaxSizeMB : target size that ideally should never be exceeded</li>\n    <li>absoluteMaxSizeMB : size that must never be exceeded</li>\n    <li>firstLevelTTL : TTL in minutes of the first level cache</li>\n    <li>secondLevelTTL : TTL in minutes of the first level cache</li>\n</ul>\n",
              "documentationHtml": "<p>\nAllow to declare a transient store inside Nuxeo.\nThe store is identified by a name and the descriptor has several parameters :\n</p><p>\n</p><pre><code>    &lt;store name&#61;&#34;microStore&#34;&gt;\n        &lt;!--  a store that can not store anything  --&gt;\n        &lt;targetMaxSizeMB&gt;0&lt;/targetMaxSizeMB&gt;\n        &lt;absoluteMaxSizeMB&gt;0&lt;/absoluteMaxSizeMB&gt;\n    &lt;/store&gt;\n</code></pre><p>\nThe store tag supports 2 attributes:\n</p><ul><li>name, that is used to identify the store</li><li>class, that should reference an implementation of the TransientStoreProvider interface (will default to SimpleTransientStore))</li></ul>\n<p>\nNested configuration elements are :\n</p><ul><li>targetMaxSizeMB : target size that ideally should never be exceeded</li><li>absoluteMaxSizeMB : size that must never be exceeded</li><li>firstLevelTTL : TTL in minutes of the first level cache</li><li>secondLevelTTL : TTL in minutes of the first level cache</li></ul>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.transientstore.TransientStorageComponent/ExtensionPoints/org.nuxeo.ecm.core.transientstore.TransientStorageComponent--store",
              "id": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent--store",
              "label": "store (org.nuxeo.ecm.core.transientstore.TransientStorageComponent)",
              "name": "store",
              "version": "2021.26.5"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.scheduler.SchedulerService--schedule",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.transientstore.TransientStorageComponent/Contributions/org.nuxeo.ecm.core.transientstore.TransientStorageComponent--schedule",
              "id": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent--schedule",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.scheduler.SchedulerService",
                "name": "org.nuxeo.ecm.core.scheduler.SchedulerService",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"schedule\" target=\"org.nuxeo.ecm.core.scheduler.SchedulerService\">\n    <schedule id=\"transientStoreGC\">\n      <eventId>transientStoreGCStart</eventId>\n      <eventCategory>default</eventCategory>\n      <!-- cleanup every 15 minutes -->\n      <cronExpression>0 0/15 * * * ?</cronExpression>\n    </schedule>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.transientstore.TransientStorageComponent/Contributions/org.nuxeo.ecm.core.transientstore.TransientStorageComponent--listener",
              "id": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent--listener",
              "registrationOrder": 11,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener async=\"false\" class=\"org.nuxeo.ecm.core.transientstore.TransientStorageGCTrigger\" name=\"transientStoreGCTrigger\" postCommit=\"false\">\n      <event>transientStoreGCStart</event>\n    </listener>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.work.service--queues",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.transientstore.TransientStorageComponent/Contributions/org.nuxeo.ecm.core.transientstore.TransientStorageComponent--queues",
              "id": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent--queues",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.work.service",
                "name": "org.nuxeo.ecm.core.work.service",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"queues\" target=\"org.nuxeo.ecm.core.work.service\">\n    <queue id=\"transientStorageGC\">\n      <name>Queue to run Transient Storage Garbage Collection Work</name>\n      <maxThreads>1</maxThreads>\n      <category>transientStorageGC</category>\n    </queue>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
          "name": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
          "requirements": [],
          "resolutionOrder": 119,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache/org.nuxeo.ecm.core.transientstore.TransientStorageComponent/Services/org.nuxeo.ecm.core.transientstore.api.TransientStoreService",
              "id": "org.nuxeo.ecm.core.transientstore.api.TransientStoreService",
              "overriden": false,
              "version": "2021.26.5"
            }
          ],
          "startOrder": 797,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\">\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.transientstore.api.TransientStoreService\" />\n  </service>\n\n   <documentation>\n    Provide a way to manage TransientStores where temporary data can be stored by key.\n   </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\" />\n\n  <extension-point name=\"store\">\n\n    <documentation>\n    Allow to declare a transient store inside Nuxeo.\n    The store is identified by a name and the descriptor has several parameters :\n\n     <code>\n       <store name=\"microStore\">\n          <!--  a store that can not store anything  -->\n          <targetMaxSizeMB>0</targetMaxSizeMB>\n          <absoluteMaxSizeMB>0</absoluteMaxSizeMB>\n       </store>\n     </code>\n\n     The store tag supports 2 attributes:\n     <ul>\n         <li>name, that is used to identify the store</li>\n         <li>class, that should reference an implementation of the TransientStoreProvider interface (will default to SimpleTransientStore))</li>\n     </ul>\n\n     Nested configuration elements are :\n     <ul>\n         <li>targetMaxSizeMB : target size that ideally should never be exceeded</li>\n         <li>absoluteMaxSizeMB : size that must never be exceeded</li>\n         <li>firstLevelTTL : TTL in minutes of the first level cache</li>\n         <li>secondLevelTTL : TTL in minutes of the first level cache</li>\n     </ul>\n\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.transientstore.api.TransientStoreConfig\"/>\n\n  </extension-point>\n\n  <extension\n    target=\"org.nuxeo.ecm.core.scheduler.SchedulerService\"\n    point=\"schedule\">\n    <schedule id=\"transientStoreGC\">\n      <eventId>transientStoreGCStart</eventId>\n      <eventCategory>default</eventCategory>\n      <!-- cleanup every 15 minutes -->\n      <cronExpression>0 0/15 * * * ?</cronExpression>\n    </schedule>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <listener name=\"transientStoreGCTrigger\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.ecm.core.transientstore.TransientStorageGCTrigger\">\n      <event>transientStoreGCStart</event>\n    </listener>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.work.service\" point=\"queues\">\n    <queue id=\"transientStorageGC\">\n      <name>Queue to run Transient Storage Garbage Collection Work</name>\n      <maxThreads>${nuxeo.work.queue.transientStorageGC.threads:=1}</maxThreads>\n      <category>transientStorageGC</category>\n    </queue>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/transientstore-service.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-core-cache-2021.26.5.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.cache",
      "id": "org.nuxeo.ecm.core.cache",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.16.1\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 2021.26.5-t20220912-092059\r\nBundle-SymbolicName: org.nuxeo.ecm.core.cache\r\nNuxeo-Component: OSGI-INF/CacheService.xml,OSGI-INF/transientstore-ser\r\n vice.xml\r\n\r\n",
      "maxResolutionOrder": 119,
      "minResolutionOrder": 118,
      "packages": [],
      "requirements": [],
      "version": "2021.26.5"
    }
  ],
  "creationDate": 1664794155250,
  "key": "Nuxeo Platform-2021.26",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1663545600000,
  "version": "2021.26"
}